<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>

</head>
<body>
<script src="js/jquery.min.js"></script>

<script>
    // 页面加载，绑定单击事件
    $(function(){
        $("#btn").click(function(){
            // alert("hello btn");
            // 发送ajax请求
            $.ajax({
                // 编写json格式，设置属性和值
                url:"user/testAjax",
                contentType:"application/json;charset=UTF-8",
                data:'{"username":"hehe","password":"123","age":30}',
                dataType:"json",
                type:"post",
                success:function(data){
                    // data服务器端响应的json的数据，进行解析
                    alert(data);
                    alert(data.username);
                    alert(data.password);
                    alert(data.age);
                }
            });

        });
    });

</script>
<%--入门案例--%>
<a href="hello">helloworld</a>
<a href="/testRequestMapping">testRequestMapping</a>
<br>

<a href="user/Test01">正常操作</a><br>

<a href="/user/Test04"> ? 匹配一个字符,0个多个都不行</a><br>

<a href="/user/Test0fdsf">" * "  匹配任意多个字符</a><br>

<a href="/user/a/dfdf//Test01"> *：匹配一层路径</a><br>

<a href="/user/a/b/c/d/Test01"> *：匹配多层路径</a><br>

<a href="/user/user/3">占位符{id}</a><br>

<form action="/user/handle02" method="post">
    <input type="submit"/>
</form>
<br>
<a href="/user/handle03">handle03-测试params</a><br/>
<a href="/user/handle04">handle04-测试headers</a>
<hr/>
<%--<h1>RequestMapping-Ant风格的URL</h1>--%>
<%--<a href="antTest01">精确请求地址-antTest01</a><br/>--%>
<%--<a href="user/admin">测试PathVariable</a>--%>

<%--================================参数绑定=======================================================================--%>



    <%--请求参数绑定--%>
    <a href="param/testParam?username=hehe&password=123">请求参数绑定</a><br>

<%--    把数据封装Account类中--%>
    <form action="param/saveAccount" method="post">
        姓名：<input type="text" name="username" /><br/>
        密码：<input type="text" name="password" /><br/>
        金额：<input type="text" name="money" /><br/>
        用户姓名：<input type="text" name="user.uname" /><br/>
        用户年龄：<input type="text" name="user.age" /><br/>
        <input type="submit" value="提交" />
    </form><br>

<%--    把数据封装Account类中，类中存在list和map的集合--%>
    <form action="param/saveAccount" method="post">
        姓名：<input type="text" name="username" /><br/>
        密码：<input type="text" name="password" /><br/>
        金额：<input type="text" name="money" /><br/>

        用户姓名：<input type="text" name="list[0].uname" /><br/>
        用户年龄：<input type="text" name="list[0].age" /><br/>

        用户姓名：<input type="text" name="map['one'].uname" /><br/>
        用户年龄：<input type="text" name="map['one'].age" /><br/>
        <input type="submit" value="提交" />
    </form><br>

<%--    自定义类型转换器--%>
    <form action="param/saveUser" method="post">
        用户姓名：<input type="text" name="uname" /><br/>
        用户年龄：<input type="text" name="age" /><br/>
        用户生日：<input type="text" name="date" /><br/>
        <input type="submit" value="提交" />
    </form><br>


    <a href="param/testServlet">Servlet原生的API</a><br>


<%--    ==================================常用注解======================================--%>
<%--常用的注解--%>

<a href="anno/testRequestParam?names=哈哈">RequestParam</a>

<br>

<form action="anno/testRequestBody" method="post">
    用户姓名：<input type="text" name="username" /><br/>
    用户年龄：<input type="text" name="age" /><br/>
    <input type="submit" value="提交" />
</form>

<a href="anno/testPathVariable/10">testPathVariable</a>

<br>

<a href="anno/testRequestHeader">RequestHeader</a>

<br>

<a href="anno/testCookieValue">CookieValue</a>

<br>

<form action="anno/testModelAttribute" method="post">
    用户姓名：<input type="text" name="uname" /><br/>
    用户年龄：<input type="text" name="age" /><br/>
    <input type="submit" value="提交" />
</form>

<br>


<a href="anno/testSessionAttributes">testSessionAttributes</a>
<br>
<a href="anno/getSessionAttributes">getSessionAttributes</a>
<br>
<a href="anno/delSessionAttributes">delSessionAttributes</a><br>

<%--====================================响应结果===================================--%>
<a href="user/testString">测试返回结果的</a><br>
jsp
<a href="user/testVoid">测试返回空的</a><br>

<a href="user/testModelAndView" >testModelAndView</a><br>

<a href="user/testForwardOrRedirect">testForwardOrRedirect</a><br>

<button id="btn">发送ajax的请求</button><br>


<h3>传统文件上传</h3>

<form action="/user/fileupload1" method="post" enctype="multipart/form-data">
    选择文件：<input type="file" name="upload" /><br/>
    <input type="submit" value="上传" />
</form><br>

<h3>Springmvc文件上传</h3>

<form action="/user/fileupload2" method="post" enctype="multipart/form-data">
    选择文件：<input type="file" name="upload" /><br/>
    <input type="submit" value="上传" />
</form><br>

<h3>跨服务器文件上传</h3>

<form action="/user/fileupload3" method="post" enctype="multipart/form-data">
    选择文件：<input type="file" name="upload" /><br/>
    <input type="submit" value="上传" />
</form>

</body>
</html>